package com.financial.service.sysconfig.service.impl;

import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
import com.financial.service.sysconfig.util.ValidateUtils;
import com.financial.service.sysconfig.util.apiresult.ApiResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.financial.service.sysconfig.dao.FinancialSysconfigPayDao;
import com.financial.service.sysconfig.domain.FinancialSysconfigPayDO;
import com.financial.service.sysconfig.service.FinancialSysconfigPayService;



@Service
public class FinancialSysconfigPayServiceImpl implements FinancialSysconfigPayService {
	protected static final Logger logger= LoggerFactory.getLogger(FinancialSysconfigPayServiceImpl.class);

	@Autowired
	private FinancialSysconfigPayDao financialSysconfigPayDao;


	@Override
	public List<FinancialSysconfigPayDO> list(Map<String, Object> map){
		return financialSysconfigPayDao.list(map);
	}

	@Override
	public int count(Map<String, Object> map) {
		return financialSysconfigPayDao.count(map);
	}


	@Override
	public ApiResult save(Map<String,Object> params){
		Object tempParams=params.get("payChannelNo");
		String payChannelNo=tempParams==null?null:tempParams.toString();
		tempParams=params.get("paramInfo");
		String paramInfo=tempParams==null?null:tempParams.toString();
		tempParams=params.get("desc");
		String desc=tempParams==null?null:tempParams.toString();
		tempParams=params.get("note");
		String note=tempParams==null?null:tempParams.toString();
		tempParams=params.get("isOpen");
		String isOpen=tempParams==null?null:tempParams.toString();
		tempParams=params.get("isDelete");
		String isDelete=tempParams==null?null:tempParams.toString();
		if (StringUtils.isBlank(payChannelNo) || StringUtils.isBlank(desc)
				|| StringUtils.isBlank(note) || StringUtils.isBlank(isOpen)
				|| StringUtils.isBlank(isDelete)) {
			return ApiResult.failure(ValidateUtils.validateProperty(params));
		}
		FinancialSysconfigPayDO financialSysconfigPayDO=new FinancialSysconfigPayDO();
		financialSysconfigPayDO.setPayChannelNo(payChannelNo);
		financialSysconfigPayDO.setParamInfo(paramInfo);
		financialSysconfigPayDO.setGmtCreate(new Date());
		financialSysconfigPayDO.setIsDelete(isDelete);
		financialSysconfigPayDO.setIsOpen(isOpen);
		financialSysconfigPayDO.setNote(note);
		int flag=financialSysconfigPayDao.save(financialSysconfigPayDO);
		if(flag>0){
			return ApiResult.success("保存成功");
		}
		return ApiResult.failure("保存失败");
	}

	@Override
	public ApiResult update(Map<String,Object> params){
		Object tempParams=params.get("id");
		int id=Integer.parseInt(tempParams.toString());
		tempParams=params.get("payChannelNo");
		String payChannelNo=tempParams==null?null:tempParams.toString();
		tempParams=params.get("paramInfo");
		String paramInfo=tempParams==null?null:tempParams.toString();
		tempParams=params.get("desc");
		String desc=tempParams==null?null:tempParams.toString();
		tempParams=params.get("note");
		String note=tempParams==null?null:tempParams.toString();
		tempParams=params.get("isOpen");
		String isOpen=tempParams==null?null:tempParams.toString();
		tempParams=params.get("isDelete");
		String isDelete=tempParams==null?null:tempParams.toString();
		if (StringUtils.isBlank(payChannelNo) || StringUtils.isBlank(desc)
				|| StringUtils.isBlank(note) || StringUtils.isBlank(isOpen)
				|| StringUtils.isBlank(isDelete)) {
			return ApiResult.failure(ValidateUtils.validateProperty(params));
		}
		FinancialSysconfigPayDO financialSysconfigPayDO=new FinancialSysconfigPayDO();
		financialSysconfigPayDO.setId(id);
		financialSysconfigPayDO.setPayChannelNo(payChannelNo);
		financialSysconfigPayDO.setParamInfo(paramInfo);
		financialSysconfigPayDO.setGmtModified(new Date());
		financialSysconfigPayDO.setIsDelete(isDelete);
		financialSysconfigPayDO.setIsOpen(isOpen);
		financialSysconfigPayDO.setNote(note);
		int flag=financialSysconfigPayDao.update(financialSysconfigPayDO);
		if(flag>0){
			return ApiResult.success("更新成功");
		}
		return ApiResult.failure("更新失败");
	}

	@Override
	public ApiResult getParamInfo(String payChannelNo) {
		if(payChannelNo==null){
			logger.info("FinancialSysconfigPayServiceImpl.getPlatfromNo()--->前台参数为空:"+payChannelNo);
			return ApiResult.failure(payChannelNo);
		}
		String paramInfo= financialSysconfigPayDao.getParamInfo(payChannelNo);
		if(paramInfo==null){
			logger.info("FinancialSysconfigPayServiceImpl.getPlatfromNo()--->数据库平台编码为空:"+paramInfo);
			return ApiResult.failure(payChannelNo);
		}
		return ApiResult.success(paramInfo);
	}

}
